using PostSharp.Laos;
using Spring.Context;
using System.Runtime.Serialization;

namespace PostSharp4Spring
{
    /// <summary>
    /// Interface added by the <see cref="ConfigurableAttribute"/> custom
    /// attribute.
    /// </summary>
    /// <remarks>
    /// We need to provide an interface because the <see cref="ConfigurableAttribute"/>
    /// relies on <see cref="CompositionAspect"/>. The interface may be empty,
    /// but it must exists.
    /// </remarks>
    public interface IConfigurable : IDeserializationCallback
    {
        /// <summary>
        /// Gets the application context in which the current instance
        /// was created.
        /// </summary>
        IApplicationContext ApplicationContext { get; }
    }
}